#include <stdio.h>

// //写程序，按从大到小的顺序输出三个数
// //思想 输出时统一按照a b c的顺序输出，在前面提前调整abc的大小顺序
// //先比较ab大小 大的放入a，在比较ac，同样大的放入a，最后比较bc，大的放入b
// int main()
// {
//     int a = 0;
//     int b = 0;
//     int c = 0;
//     int temp = 0;
//     scanf("%d %d %d",&a,&b,&c);
//     if (a < b)
//     {
//         temp = a;
//         a = b;
//         b = temp;   
//     }
//     if (a < c)
//     {
//         temp = a;
//         a = c;
//         c = temp;
//     }
//     if (b < c)
//     {
//         temp = b;
//         b = c;
//         c= temp;
//     }
//     printf("%d %d %d\n",a,b,c);
//     return 0;
// }


// //注意到这三个交换元素可以用一个函数来完成
// void swap(int* px,int* py)
// {
//     int temp = *px;
//     *px = *py;
//     *py = temp;
// }
// int main()
// {
//     int a = 0;
//     int b = 0;
//     int c = 0;
//     scanf("%d %d %d",&a,&b,&c);
//     if (a < b)
// //     {
//         swap(&a,&b);
//     }
//     if (a < c)
//     {
//         swap(&a,&c);
//     }
//     if (b < c)
//     {
//         swap(&b,&c);
//     }
//     printf("%d %d %d\n",a,b,c);
//     return 0;
// }





// //输出1-100中3的倍数
// int main()
// {
//     int i = 0;
//     for (i = 3; i <= 100;i += 3)
//     printf("%d ",i);
//     return 0;
// }





// //求两个整数的最大公约数
// //暴力解
// int main()
// {
//     int a = 0;
//     int b = 0;
//     scanf("%d %d",&a,&b);
//     int min = (a < b) ? a : b;
//     while (1)
//     {
//         if(a % min == 0 && b % min == 0)
//         break;
//         min --;
//     }
//     printf("%d\n",min);
//     return 0;
// }

// //辗转相除法
// int main()
// {
//     int a = 0;
//     int b = 0;
//     int r = 0;
//     scanf("%d %d",&a,&b);
//     if(a < b)
//     {
//         int temp = a;
//         a = b;
//         b = temp;
//     }
//     r = a % b;
//     while(r)
//     {
//         a = b;
//         b = r;
//         r = a % b;
//     }  
//     printf("%d\n",b);
//     return 0;
// }

//实际上本题不用考虑ab的大小，如输入18 24 18%24=18，之后ab的值就互换了，依然是求解24 18
//鹏哥写法 更简便 ，把a%b放在while的条件里
// int main()
// {
//     int a = 0;
//     int b = 0;
//     int r = 0;
//     scanf("%d %d",&a,&b);
//     while(r=(a%b))     //完成求值的同时实现了循环条件的判断
//     {
//         a = b;
//         b = r;
//     }  
//     printf("%d\n",b);
//     return 0;
// }




// //1-100中数字9的个数
// int main()
// {
//     int i = 0;
//     int count = 0;
//     for(i=1;i <= 100;i++)
//     {
//         if(i%10 == 9)
//         {
//             count ++;
//         }
//         if(i/10 == 9)
//         {
//             count ++;
//         }
//     }
//     printf("%d\n",count);
//     return 0;
// }





// //计算1/1 - 1/2 + 1/3 -1/4 +...- 1/100
// //易错点在于1/i若默认为整型的话，结果全部为零，必须要写成浮点数
// int main()
// {
//     int i =0;
//     double sum = 0;
//     int flag = 1;//用flag会比分奇偶更简便，天才
//     for(i = 1;i <= 100;i++)
//     {
//         sum = sum + flag *(1.0/i);
//         flag = - flag;
//     }
//     printf("%lf\n",sum);
// }





// //求十个整数中的最大值
// int main()
// {
//     int arr[10]= { 0 };
//     int i = 0;
//     for(i = 0;i < 10;i++)
//     {
//         scanf("%d",&arr[i]);
//     }
//     int max = arr[0];
//     for(i = 1;i < 10;i++)
//     {
//         if(max < arr[i])
//         {
//             max = arr[i];
//         }
//     }
//     printf("最大值为%d\n",max);
// }




// //在屏幕上输出99乘法口诀表
// int main()
// {
//     int i = 0;
//     int j = 0;
//     for(i = 1;i <= 9;i ++)
//     {
//         for(j = 1;j <= i;j++)
//         {
//             printf("%d*%d=%d\t",i,j,i*j);//\t 水平制表符  也可用%2d，右对齐
//         }
//         printf("\n");
//     }
// }




//猜数字游戏
#include <time.h>
#include <stdlib.h>
void menu()
{
    printf("************************\n");
    printf("******   1.play   ******\n");
    printf("******   0.exit   ******\n");
    printf("************************\n");
}
void game()
{
    int num = (rand()) % 100;
    int a = 0;
    printf("请猜一个1-100之间的数字:\n");
    scanf("%d",&a);
    while(1)
    {
        if(a < num)
        {
            printf("猜小了，请继续猜\n");
            scanf("%d",&a);
        }
        else if(a > num)
        {
            printf("猜大了，请继续猜\n");
            scanf("%d",&a);
        }
        else
        {
            printf("恭喜你，猜对了\n");
            break;
        }
    }
}
int main()
{
    srand((unsigned int) time(NULL));
    int input = 0;
    do
    {
        menu();
        printf("请选择：\n");
        scanf("%d",&input);
        switch(input)
        {
            case 1:
            printf("猜数字\n");
            game();
            break;
            case 0:
            printf("退出\n");
            break;
            default:
            printf("输入错误，请重新输入\n");
            break;
        }
    } while (input);
}